Software testing is an investigation that is conducted to determine whether a particular software application works as expected. Test techniques include, but are not limited to, the process of executing a program or application in a controlled environment with specific stimuli. Such testing is conducted with the intent of finding errors, flaws, mistakes, etc. in the software application.
As software applications grow in size and complexity, more powerful testing techniques become necessary. Once such technique involves automated testing that utilizes a testing framework to control the execution of the software application being tested. Quality assurance engineers must still design and program the tests run by the testing framework. However, testing frameworks have streamlined this process by providing pre-written, or canned, test commands. The quality assurance engineer may then assemble the test commands into a larger testing application that is run and monitored by the testing framework. However, designing, writing, and implementing a testing application, even with the aid of the pre-written test commands of a testing framework, is very labor intensive and error prone.